/**
 * 
 */
package com.jf.cloud.service.sysmanager.common.taglib.html;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import java.io.IOException;

/**
 * 游戏、搜索标签处理类
 * 
 * @author ZhaiYuanling 创建时间：2015年4月2日 上午9:50:00
 */
public class GameSearchTag extends AbstractHtmlFormElementTag {

	/**
	 * AJAX请求URL
	 */
	private String ajaxURL;

	/**
	 * 回调函数
	 */
	private String callback;

	/**
	 * 获取AJAX请求URL
	 * 
	 * @return AJAX请求URL
	 */
	public String getAjaxURL() {
		return ajaxURL;
	}

	/**
	 * 设置AJAX请求URL
	 * 
	 * @param ajaxURL AJAX请求URL
	 */
	public void setAjaxURL(String ajaxURL) {
		this.ajaxURL = ajaxURL;
	}

	/**
	 * 获取回调函数
	 * 
	 * @return 回调函数
	 */
	public String getCallback() {
		return callback;
	}

	/**
	 * 设置回调函数
	 * 
	 * @param callback 回调函数
	 */
	public void setCallback(String callback) {
		this.callback = callback;
	}

	@Override
	public int doStartTag() throws JspException {
		if (name == null || name.length() == 0) {
			throw new JspException("游戏搜索标签名称属性――\"name\"不能为空！");
		}
		if (value == null || value.length() == 0) {
			throw new JspException("游戏搜索标签值属性――\"value\"不能为空！");
		}
		if (ajaxURL == null || ajaxURL.length() == 0) {
			throw new JspException("游戏搜索标签AJAX请求URL属性――\"ajaxURL\"不能为空！");
		}

		JspWriter writer = pageContext.getOut();

		// 游戏、搜索标签
		StringBuffer sb = new StringBuffer();
		sb.append("<input");
		if (id != null && id.length() > 0) {
			sb.append(" id=\"").append(id).append("\"");
		}
		if (name != null && name.length() > 0) {
			sb.append(" name=\"").append(name).append("\"");
		}
		if (value != null && value.length() > 0) {
			sb.append(" value=\"").append(value).append("\"");
		}
		if (ajaxURL != null && ajaxURL.length() > 0) {
			sb.append(" ajaxURL=\"").append(ajaxURL).append("\"");
		}
		if (callback != null && callback.length() > 0) {
			sb.append(" callback=\"").append(callback).append("\"");
		}
		// 文本框
		sb.append(" type=\"text\"");
		// 提示
		String title = "输入关键字（服务器拼音或名称）搜索游戏";
		sb.append(" title=\"").append(title).append("\"");
		// 样式
		if (cssClass != null && cssClass.length() > 0) {
			sb.append(" class=\"").append(cssClass).append("\"");
		}
		if (style != null && style.length() > 0) {
			sb.append(" style=\"").append(style).append("\"");
		}
		sb.append(" />");

		// 游戏搜索标签初始化
		sb.append("<script language=\"javascript\" type=\"text/javascript\">");
		sb.append(" $(function(){TagUtil.initGameSearch('" + id + "');});");
		sb.append("</script>");

		try {
			writer.println(sb.toString());
		} catch (IOException ex) {
			throw new JspException("游戏标签HTML输出异常！", ex);
		}

		return SKIP_BODY;
	}

}
